package com.sg.dto.biz.component.common;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Objects;

/**
 * @desc DataSetsListOneDto
 * @使用场景
 */
@Data
public class DataSetsListOneDto extends BaseDto implements Serializable {

    /**
     * 自定义字段
     */
    @NotNull(message = "自定义字段不能为空")
    @ApiModelProperty("自定义字段")
    private String customField;

    /**
     * 通用文本字段
     */
    @NotNull(message = "通用文本字段不能为空")
    @ApiModelProperty("通用文本字段")
    private String comTxtField;
    /**
     * 自定义字段1
     */
    @NotNull(message = "自定义字段1不能为空")
    @ApiModelProperty("自定义字段1")
    private String customField1;
    /**
     * 文档ID
     */
    @NotNull(message = "文档ID不能为空")
    @ApiModelProperty("文档ID")
    private String unstructuredDataId;

    /**
     * 是否是网盘引用关系 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否是网盘引用关系")
    private String isNetworkReference;

    /**
     * 来源文档关系ID
     */
    @ApiModelProperty("来源文档关系ID")
    private String sourceRelationshipId;
    /**
     * 自定义字段2
     */
    @ApiModelProperty("自定义字段2")
    private String customField2;

    /**
     * 自定义字段3
     */
    @ApiModelProperty("自定义字段3")
    private String customField3;

    /**
     * 自定义字段4
     */
    @ApiModelProperty("自定义字段4")
    private String customField4;
    /**
     * 自定义字段5
     */
    @ApiModelProperty("自定义字段5")
    private String customField5;

    /**
     * 自定义字段6
     */
    @ApiModelProperty("自定义字段6")
    private String customField6;

    /**
     * 自定义字段7
     */
    @ApiModelProperty("自定义字段7")
    private String customField7;

    /**
     * 自定义字段8
     */
    @ApiModelProperty("自定义字段8")
    private String customField8;
    /**
     * 通用主键ID
     */
    @ApiModelProperty("通用主键ID")
    private String commPrimaryKey;

    /**
     * 通用数值字段1（小数型）
     */
    @ApiModelProperty("通用数值字段1（小数型）")
    private Double comFloatField1;

    /**
     * 通用数值字段2（小数型）
     */
    @ApiModelProperty("通用数值字段2（小数型）")
    private Double comFloatField2;
    /**
     * 就职记录ID
     */
    @NotNull(message = "就职记录ID不能为空")
    @ApiModelProperty("就职记录ID")
    private String inductionRecordId;

    /**
     * 直属部门ID
     */
    @NotNull(message = "直属部门ID不能为空")
    @ApiModelProperty("直属部门ID")
    private String deptId;

    /**
     * 身份人员ID
     */
    @NotNull(message = "身份人员ID不能为空")
    @ApiModelProperty("身份人员ID")
    private String originalRoleMemberId;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        DataSetsListOneDto that = (DataSetsListOneDto) o;
        return customField == that.customField && comTxtField == that.comTxtField && customField1 == that.customField1 && unstructuredDataId == that.unstructuredDataId && isNetworkReference == that.isNetworkReference && sourceRelationshipId == that.sourceRelationshipId && customField2 == that.customField2 && customField3 == that.customField3 && customField4 == that.customField4 && customField5 == that.customField5 && customField6 == that.customField6 && customField7 == that.customField7 && customField8 == that.customField8 && commPrimaryKey == that.commPrimaryKey && comFloatField1 == that.comFloatField1 && comFloatField2 == that.comFloatField2 && inductionRecordId == that.inductionRecordId && deptId == that.deptId && originalRoleMemberId == that.originalRoleMemberId;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), customField, comTxtField, customField1, unstructuredDataId, isNetworkReference, sourceRelationshipId, customField2, customField3, customField4, customField5, customField6, customField7, customField8, commPrimaryKey, comFloatField1, comFloatField2, inductionRecordId, deptId, originalRoleMemberId);
    }

}
